Data processing systems frequently include large scale storage devices such as direct access storage devices (DASD) located externally to the host computer and sometimes at significant distances therefrom. Communication from the host computer to the DASD is accomplished over signal cables called channels extending between the DASD and its control unit and connecting them to the host processor.
Current technology provides DASD units with several separate disks, all rotating on the same spindle. These disks or platters are accessed by head disk assemblies with a transducing head providing access to one surface of each disk. There may be, for example, nine platters in a disk drive providing 16 usable surfaces with one of the usable surfaces used for maintaining accurate tracking capability. In such units there are 15 usable surfaces for data and when all the heads are positioned, a cylinder of 15 physical, recording tracks can be accessed.
DASD units frequently use a count key data architecture (CKD) where records written on the track are provided with a count field (an ID), a key length field and a data field. In writing these fields along a recording track, a gap is provided between each of the fields. Those gaps are then utilized to provide a time period in which the DASD control unit and the host channel can communicate with each other. It is during the gap time that the control unit provides information back to the channel in response to the command that it has received and gets the next command in order to begin the next operation for searching, retrieving or writing records. This process is termed gap synchronous, that is to say, that the particular record on which the DASD device is working, is the same record on which the channel has requested work, so that both the channel and the device are synchronous with each other in the sense that they are both working on the same record, either to read it or to write it.
As systems become faster and faster, the delays created by the gaps or by the performance of functions within a gap period have to be shrunk to such an extent that the functions can no longer be adequately performed. This is particularly true of optical fiber channels where the data burst rate is several times the burst rate for copper channels.
Nonsynchronous storage subsystems are developed to enable the channel and the device to transfer data independently of each other. To do that, a buffer is inserted into the data path between the device and the channel with separate data paths for the channel and the device, each under the control of separate processors. In that manner, the device processor can access records in one portion of the buffer while another portion of the buffer is being used by the channel processor. Channel programs can be executed such that the channel and storage control activities required to end execution of one command and advance to the next do not have to occur during the inter-record gap between two adjacent fields.
In a synchronous system, the device and the channel operate on the same record so that the data transferred to the buffer by the device is the same data that the channel wants. In a nonsynchronous system, however, the device may operate significantly ahead of the channel during read operations and in order to secure satisfactory performance, it is desirable to have a mechanism for predicting what records the channel will want so that when an end of track is reached, the device switches to read the next track probably desired by the channel. Similarly, when performing write operations the channel is frequently ahead of the device and some mechanism is needed for informing the channel processor what tracks have probably been written without tying up the channel for the entire time that the device is writing the records.
An object of this invention is to improve performance by providing a mechanism for enabling the device to switch recording tracks in the proper sequence. This is especially important where a series of nonconsecutive tracks is to be read.
Another object is to enable the lagging activity to inform the leading activity of changes needed to conform the leading activity to the command.
Still another object is to efficiently sense end of cylinder or end of extent to switch cylinders or to signal error.